The present invention relates generally to a computer implemented method, data processing system, and computer program product for communicating between three or more data processing systems. More specifically, the present invention relates to setup and tear-down of one or more sessions that are linked in a chain or otherwise nested.
Computer networks enable multiple computers to work cooperatively to solve problems. A user may be seated at a computer at one location in a network, yet need to use resources of a second computer at another place in the network. To solve this problem, computer scientists built a number of client and server applications that can establish a session between two computers using a network, such as, for example, the Internet.
A remote access session or session is a state-aware connection between a client executed by a data processing system and a server executed by a processing system. The session begins with the stages or authentication and interactive mode. In these stages, the client provides identity and/or authentication information, as well as coordinates terminal settings and other user-specific conventions or options that will be observed in the session in-chief. The session can apply the protocol rules using, for example, secure shell (ssh), remote login (rlogin) and telnet, among other session protocols.
A user may use a session between his computer's client and a server to operate as a platform for yet another session to a second server. Accordingly, the user may execute a telnet command local to the first server, but specifying, as a target, the second server. The first server executes the telnet command and behaves as a client in relation to the second server during the second session. Meanwhile, the second server may receive requests from the first server. Consequently, the second server may act as a server for the first server during the second session. If the client computer is labeled ‘X’, the first server labeled ‘A’ and the second server labeled ‘B’, the sessions can simply be described as follows. First, X connects to A to form the first session. Second, A connects to B to form the second session.
The arrangement of using the resources of a remote computer to establish second sessions to extend the reach of the client is called nested remote access sessions (NRAS). As described earlier, the session protocol selected may include, for example, rlogin, telnet and ssh. Conventional sessions record a TCP protocol control block or PCB to the data processing system that hosts the session. The PCB is a five field block that records the following data: source Internet protocol (IP) address, source Transport Control Protocol (TCP) port, destination IP address (IP address of the data processing system that acts as server for the session), destination Transport Control Protocol (TCP) port, and the address of the protocol control block.
A nested remote access session delivers a user's keystrokes first to the first session computer or first server. Next, the first server relays the user keystrokes to the second server, and so on through additional remote sessions. A query made by the user that requests the IP addresses involved in the session causes the most remote server in the NRAS chain to respond only with information present in the PCB of that remote server. Accordingly, the most remote server can access the IP addresses concerning only the most remote session. In the example given above, such a query can develop only the information of the A-to-B session, but not the information of the X-to-A session. This outcome results from the most remote server accessing its local PCB containing information about the A-to-B session.
Accordingly, an improvement over the existing situation is desired.